package com.longrise.common.base;


import com.longrise.common.utils.PrintLog;

import io.reactivex.disposables.Disposable;
import io.reactivex.internal.disposables.ListCompositeDisposable;

/**
 * Created by callxkj on 2017/4/26.
 * rx管理类
 */

public class RxManager {

    private static final String TAG = "RxManager";
    private ListCompositeDisposable mListCompositeDisposable = new ListCompositeDisposable();

    /**
     * 添加disposable 为了方便管理生命周期
     */
    public void addDisposable(Disposable disposable) {
        if (disposable != null && !disposable.isDisposed()) {
            mListCompositeDisposable.add(disposable);
            PrintLog.d(TAG,"addDisposable");
        }
    }

    /**
     * 移除disposable 并且取消订阅
     */
    public void removeDisposable(Disposable disposable) {
        if (disposable != null) {
            mListCompositeDisposable.remove(disposable);
        }
    }

    /**
     * 清除当前页面的全部订阅
     */
    public void clear() {
        if (!mListCompositeDisposable.isDisposed()) {
            mListCompositeDisposable.clear();
            PrintLog.d(TAG,"clear");
        }
    }
}
